
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>async await</title>
</head>
<body>
    async await
    <!-- 
        1)、await不能单独使用，必须与async一起使用(? 也可以单独使用但有前提)；
        2)、await右侧的表达式一般为promise对象
        3)、await返回的是promise成功的结果不是失败的结果，
        4)、await的promise失败，需要配合try ...catch捕获异常
     -->

    <script>

        /*
            定义模拟请求数据的方法
            return :
                promise对象
        */

        function getApi() {
            return  new Promise((resolve,reject)=>{
                setTimeout(() => {
                    // resolve({
                    //     code:200,
                    //     msg:"请求数据成功",
                    //     data:[{ id: 1, name: '李四' }, { id: 2, name: "鲁班" }]
                    // })
                    reject("失败结果")
                }, 2000);
            })
        }


        // 定义获取数据的方法
        async function getData() {
            // let res = getApi();//promise对象
            // res.then(res => console.log('请求结果是：', res))
            // console.log('我是同步代码')
            try{
                let res =await getApi();//
                console.log('res请求结果是：', res)
                console.log('我是同步代码')
            }
            catch(error){
                console.log('错误信息是：', error)
            }
            finally{
                console.log('最后执行的地方，一般用来释放资源')
            }
        }

        getData()




    </script>


</body>
</html>